<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Pared extends CI_Controller {
   //Constructor
    public function __construct() {
        parent::__construct();
        $this->load->model('act_model');
        $this->load->model('funciones_model');
        $this->load->model('log_model');
        $this->load->model('reporte_model');
        $this->load->helper('url');
        $this->load->helper('form');
        $this->load->library('session');
        $this->load->library('encrypt');
    }

    // Metodo que se carga inmediatamente , se va a la pagina principal
    public function index() {
        $this->load->view('principal');
    }

    /* Carga la vista de crear pizarra. */
    function goPizarra() {
        $this->load->view('crearPizarra');
    }

    // Metodo que se encarga de agregar una pizarra
    function addPizarra() {
        $nombre = $this->input->post('nombre');
        $descripcion = $this->input->post('descripcion');

        $this->load->model('pizarra_model');
        $this->pizarra_model->agregarPizarra($nombre, $descripcion);
        $this->reporte_model->usuarioCreoProyecto($this->session->userdata('email'),$nombre);
        
        if ($this->funciones_model->esAdmin() == TRUE) {
            $this->funciones_model->goParedAdmin();
        } else {
            $this->funciones_model->goParedUsuario();
        }
    }

    /*Lleva a la vista de ver pizarra. */
    function verPizarra() {
        $this->load->view('verPizarra');
    }

    // Metodo que envia un correo electronico de recuperacion de clave
    // Dicho metodo utiliza el protocolo "mail" de CodeIgniter, que a su vez
    // se configuro para que utilizara un servidor SMTP de Gmail.
    public function enviarEmail() {
        $this->load->library('email');
        $this->load->library('form_validation');
        $this->form_validation->set_rules('username', 'Username', 'required');
        //Se verifica que se introduzcan los campos para poder hacer la validacion
        if ($this->form_validation->run() == FALSE) {
            echo 'Debe introducir usuario ';
        } else {
            //Finalmente se accedea la base de datos en busqueda de la clave
            //del usuario que lo solicito, y se le envia a su correo electronico 
            $uname = $this->input->post('username');
            $this->db->select('password');
            $this->db->from('usuario');
            $this->db->where('email = ' . "'" . $uname . "'");
            $query = $this->db->get();
            $this->email->initialize();
            $this->email->from('taskboardusb@gmail.com', 'TaskBoardUSB');
            $this->email->to($uname);
            $this->email->subject('Recuperacion de clave');
            foreach ($query->result() as $row) {
                $this->email->message('Su clave es: ' . $row->password);
            }
            $this->email->send();
        }
        $this->load->view('principal');
    }

    // Metodo que direcciona a las actividades del proyecto pasado por parametro
    // Se le pasa el nombre del proyecto
    public function goVerMiPizarra() {

        $proyecto = $this->uri->segment(3);
        $this->funciones_model->goVerMiPizarra($proyecto);
    }
    
     // Metodo que define el registro de un invitado, donde los unicos campos
    // que se llenan son email y password
    public function registrarInvitado() {
        $this->load->helper('form');
        $usuario = $this->input->post('email');
        $datos = array(
            'email' => $usuario,
            'password' => $this->input->post('password')
        );

        $this->act_model->registrarInvitado($datos);
        $this->load->helper('url');

        $this->load->library('email');
        $this->load->library('form_validation');

        $this->form_validation->set_rules('email', 'required');

        if ($this->form_validation->run() == FALSE) {
            echo 'Debe introducir un email para realizar la solicitud';
        } else {

            $user = $this->input->post('email');
            $pass = $this->input->post('password');
            $coment = $this->input->post('comentarios');
            $this->email->initialize();
            $this->email->from('taskboardusb@gmail.com', 'TaskBoardUSB -  Invitacion de creacion de cuenta');
            $this->email->to($user);
            $this->email->subject('TaskBoardUSB -  Invitacion de creacion de cuenta');
            $message = 'Invitacion de creacion de cuenta : ' . "\n\n\n";
            $message .= $coment . "\n";
            $message .= "\n";
            $message .= 'Debe ingresar al sistema y culminar su registro . Los datos que le fueron asignados son:' . "\n\n";
            $message .= '--> Username es :' . $user . "\n";
            $message .= '-->Contrasena :' . $pass . "\n\n\n";
            $message .= ' Bienvenido a TaskBoard!, te estamos esperando.';

            $this->email->message($message);

            $this->email->send();
        }
        
        $administrador = $this->session->userdata('email');
        $this->log_model->administradorRegistroInvitado($administrador,$usuario);

        if ($this->funciones_model->esAdmin() == TRUE) {
            $this->funciones_model->goParedAdmin();
        } else {
            $this->funciones_model->goParedUsuario();
        }
    }
}

